// user-module/src/main/java/org/x/user/service/ISysConfigService.java
package org.x.user.service;

import com.mybatisflex.core.service.IService;
import org.x.user.entity.SysConfigEntity;
import org.x.user.entity.SysConfigHistoryEntity;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 系统配置表 服务层。
 */
public interface ISysConfigService extends IService<SysConfigEntity> {




    Map<String, Object> refreshCache();

    /**
     * 获取公共配置
     */
    List<SysConfigEntity> getPublicConfigs();

    /**
     * 根据条件查询配置历史记录
     */
    List<SysConfigHistoryEntity> getConfigHistory(String configKey, Long operatorId, Date startTime, Date endTime);

    /**
     * 更新配置值
     */
    boolean updateConfigValue(Integer id, String configValue);

    /**
     * 验证配置值
     */
    boolean validateConfigValue(String configKey, String configValue);


    /**
     * 删除配置（带保护机制）
     */

    /**
     * 创建配置（带验证）
     */
    boolean createConfigWithValidation(SysConfigEntity config);

    /**
     * 获取公共配置映射
     */
    Map<String, Object> getPublicConfigMap();

    /**
     * 获取前端需要的公共配置
     */
    Map<String, Object> getPublicConfigsForFrontend();
}
